package lock8;

import java.util.concurrent.TimeUnit;

/**
 * 8锁问题
 * 5. 两个静态锁方法 调用 先执行发短信还是打电话？   //todo  因为静态方法只有一份 所以锁的是class类对象 并且由于有多个对象 他们里面的静态方法的锁都是同一份 所以 先执行完发短信在执行打电话。
 * 6. 1个静态方法 1个普通方法  先执行发短信还是打电话？  // todo 因为静态方法是class锁  而普通锁方法是调用者锁 两个锁不是同一个 所以互不影响 先执行打电话 在执行发短信
 */
public class Test3 {

    public static void main(String[] args) {
        phone phone = new phone();
        new Thread(()->{
            phone.sendMs();
        },"A").start();

        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        new Thread(()->{
            phone.call();
        },"B").start();
    }



}
//class phone{
//
//
//    public static synchronized void sendMs(){
//        try {
//            TimeUnit.SECONDS.sleep(4);
//        } catch (InterruptedException e) {
//            throw new RuntimeException(e);
//        }
//        System.out.println("发送短信 ！！！");
//    }
//
//
//    public synchronized void call(){
//        System.out.println("打电话 !!!");
//    }
//
//
//}
